﻿package com.sp.pay.common;

import java.util.List;

public class WebPage {
		 /**
	     * 一行显示的最大记录数
	     */
	    public int MAX_ROW = 15;
	    /**
	     * 当前页
	     */
	    private int currentPage;
	    /**
	     * 总页数
	     */
	    private int allPage;
	    /**
	     * 查询的结果集大小
	     */
	    private int count;
	    /**
	     * 返回链接
	     */
	    private String url;
	    
	    /**
	     * 数据集
	     */
	    private List list;
	    
	    /**
	     * 备用数据
	     */
	    private int cuNum;
	    
	    /**
	     * 输出连接串
	     */
	    public  String jwebpage;
	    
	    public String functionName="showdata";
	    
	    public String getFunctionName() {
			return functionName;
		}


		public void setFunctionName(String functionName) {
			this.functionName = functionName;
		}


		public WebPage() {
	        currentPage = 1;
	        allPage = 0;
	        count = 0;
	    }
	    
	    
	    public int getCurrentPage() {
			return currentPage;
		}


		public void setCurrentPage(int currentPage) {
			this.currentPage = currentPage;
		}
		

		public int getCuNum() {
			return cuNum;
		}


		public void setCuNum(int cuNum) {
			this.cuNum = cuNum;
		}


		public int getAllPage() {
			return allPage;
		}


		public void setAllPage(int allPage) {
			this.allPage = allPage;
		}


		public int getCount() {
			return count;
		}


		public void setCount(int count) {
			this.count = count;
		}


		public String getJwebpage() {
			return jwebpage;
		}


		public void setJwebpage(String jwebpage) {
			this.jwebpage = jwebpage;
		}


		public int getcount() {
	        return count;
	    }
	    public int getIndex() {
	        return currentPage;
	    }
	    public int getPageNum() {
	        return allPage;
	    }
	    public String getUrl() {
	        return url;
	    }
	    public void setUrl(String url) {
	        this.url = url;
	    }

		public int getMAX_ROW(){
			return MAX_ROW;
		}
		public void setMAX_ROW(int max_row) {
			MAX_ROW = max_row;
		}
	    public void setcurrentPage(int currentPage) {
	        this.currentPage = currentPage;
	    }
	    public void setcurrentPage(String currentPage) {
	    	int no=1;
	    	if(currentPage!=null&&!currentPage.trim().equals(""))
	    	{
	    		no=getInt(currentPage);
    			if(no<1)
    			{
    				no=1;
    			}
	    	}
	        this.currentPage =no;
	    }
	    /**
	     * 初始化
	     * @param currentPage 当前页数
	     * @param max_row 没页显示行数
	     * @param num 总行数
	     * @param url 路径
	     */
	    public void init(String currentPage,int max_row,int num,String url)
	    {
	    	if(max_row<1)//每页默认显示15行
	    	{
	    		this.MAX_ROW=15;
	    	}
	    	else
	    	{
	    		this.MAX_ROW=max_row;
	    	}
	    	if(url==null||url.trim().equals(""))
	    	{
	    		this.url="?";
	    	}
	    	else
	    	{
	    		this.url=url;
	    	}
	    	setcount(num);
	    	//当前页默认为1
	    	int no=1;
	    	if(currentPage!=null&&!currentPage.trim().equals(""))
	    	{
    			no=getInt(currentPage);
    			if(no>allPage)
    			{
    				no=allPage;
    			}
    			if(no<1)
    			{
    				no=1;
    			}
	    	}
	        this.currentPage =no;
	    }
	    /**
	     * 设置总页数
	     * @param num
	     */
	    public void setcount(int num) {
	       if(num>0)
	       {
	    	   count = num;
	           if (count % MAX_ROW == 0) {
	               allPage = count / MAX_ROW;
	           }
	           else {
	               allPage = count / MAX_ROW + 1;
	           } 
	       }else
	       {
	    	   count=0 ;
	    	   allPage=0;
	       }
	    	
	    }
	    /**
	     *文WEB本中插入跳转编辑筐
	     */
	    public String insertWEBTag() {
	    	StringBuffer text=new StringBuffer("共");
	        text.append(count);
	        text.append("个 ");
	        text.append(currentPage).append("/").append(allPage);
	        text.append(" <form action='");
	        text.append(this.url);
	        text.append("'><input name='pageNo'  format='*N' type='text' maxlength='4' size='2' emptyok='false'/>页");
	        
	        text.append("<input value='跳到' type='submit'></form>");
	       	return text.toString();
	    } 
	   /**
	    * 打印出翻页连接
	    * @return
	    */
	    public String getWebFooter() {
	        if (allPage<= 1) {//只有一页
	            return "";
	        }
	        else
	        {  
	        	StringBuffer str = new StringBuffer();
	        	str.append("<div class='pagination'><ul>");
	        	
	            if(currentPage>1)
	            {
	            	str.append("<li class='nextpage'><a href='").append(url).append("&pageNo=1");
	            	str.append("'>首页</a></li>");
	            }
	            if (currentPage <3 ||allPage<6) {
	            	for(int i=1;i<6&&i<=allPage;i++)
	            	{
	            		if(i==currentPage)
	            		{
	            			str.append("<li class='currentpage'>");
			            	str.append(i);
			            	str.append("</li>");
	            		}
	            		else
	            		{
	            			str.append("<li><a href='");
	            			str.append(url).append("&pageNo=");
			            	str.append(i);
			            	str.append("'>");
			            	str.append(i);
			            	str.append("</a></li>");
	            		}
	            	}
	            }else if(currentPage>allPage-2)
	            {
	            	for(int i=allPage-4;i<=allPage;i++)
	            	{
	            		if(i==currentPage)
	            		{
	            			str.append("<li class='currentpage'>");
			            	str.append(i);
			            	str.append("</li>");
	            		}
	            		else
	            		{
	            			str.append("<li><a href='");
	            			str.append(url).append("&pageNo=");
			            	str.append(i);
			            	str.append("'>");
			            	str.append(i);
			            	str.append("</a></li>");
	            		}
	            		
	            	}
	            }
	            else {
	            	for(int i=currentPage-2;i<=currentPage+2;i++)
	            	{
	            		if(i==currentPage)
	            		{
	            			str.append("<li class='currentpage'>");
			            	str.append(i);
			            	str.append("</li>");
	            		}
	            		else
	            		{
	            			str.append("<li><a href='");
	            			str.append(url).append("&pageNo=");
			            	str.append(i);
			            	str.append("'>");
			            	str.append(i);
			            	str.append("</a></li>");
	            		}
	            	}
	            }
	            if(currentPage < allPage)
	            {
	            	str.append("<li class='nextpage' ><a href='").append(url).append("&amp;pageNo=");
	            	str.append(allPage);
	            	str.append("'>尾页</a></li>");
	            }
	           /* str.append("<li class='nextpage'><select name='pageNo' onchange='toPage(this.options[this.options.selectedIndex].value);'>");
	            for(int j=1;j<=allPage;j++)
	            {
	            	str.append("<option value='");
	            	str.append(j);
	            	if(currentPage==j)
	            	{
	            		str.append("' selected='selected");
	            	}
	            	str.append("'> ");
	            	str.append(j).append("/").append(allPage);
	            	str.append("</option>");
	            }
	            str.append("</select></li>");
	            str.append("</ul></div>");
	            str.append("<script type='text/javascript'>");
	            str.append("function toPage(p){ window.location.href='");
	           str.append(url).append("&amp;pageNo=p'");
	           str.append("; }</script>");*/
	          return str.toString();
	        }
	    }
	    
	    /**
	    * 打印出css样式文件
	    * @return
	    */
	    public String getCSSStyle() {
	    	
	    	StringBuffer str=new StringBuffer();
	    	str.append("<style type=\"text/css\">");
	    	str.append(".pagination{padding: 2px;}");
	    	str.append(".pagination ul{margin: 0;padding: 0;text-align: right;font-size: 16px;}");
	    	str.append(".pagination li{list-style-type: none;display: inline;padding-bottom: 1px;}");
	    	str.append(".pagination a, .pagination a:visited{padding: 0 5px;border: 1px solid #9aafe5;text-decoration: none; color: #2e6ab1;}");
	    	str.append(".pagination a:hover, .pagination a:active{border: 1px solid #2b66a5;color: #000;background-color: lightyellow;}");
			str.append(".pagination li.currentpage{font-weight: bold;padding: 0 5px;border: 1px solid navy;background-color: #2e6ab1;}");
			str.append(".pagination li.disablepage{padding: 0 5px;border: 1px solid #929292;color: #929292;}");
			str.append(".pagination li.nextpage{font-weight: bold;}");
			str.append("* html .pagination li.currentpage, * html .pagination li.disablepage{ margin-right: 5px;padding-right: 0;}</style>");
				    	
	    	return str.toString();
	    }
	    /**
	     * 将字符转化为数字
	     * @param str 
	     * @return int
	     */
	    private int getInt(String str){ 
			if(str!=null&&!str.equals(""))
			{
				str=str.trim();
				str=str.replace("+","");
				String ers="[+-]*[0-9]+";
				if(str.matches(ers))
				{
					return Integer.parseInt(str);
				}else
				{
					return 2;
				}
			}else
			{
				return 1;
			}
		}
	    
	    /**
		    * 打印出翻页连接
		    * @return
		    */
		    public String setJPage(){
		        if (allPage<= 1) {//只有一页
		            return "";
		        }
		        else
		        {  
		        	StringBuffer str = new StringBuffer();
		        	str.append("<ul class='pages'>");
		        	
		            if(currentPage>1)
		            {
		            	str.append("<li class='pgNext'><a href=\"javascript:void(0);\" onclick=\""+functionName+"(1,").append(MAX_ROW).append(");return false;\">首页</a></li>");
		            }
		            if (currentPage <3 ||allPage<6) {
		            	for(int i=1;i<6&&i<=allPage;i++)
		            	{
		            		if(i==currentPage)
		            		{
		            			str.append("<li class='pgCurrent'>");
				            	str.append(i);
				            	str.append("</li>");
		            		}
		            		else
		            		{
		            			str.append("<li><a href=\"javascript:void(0);\" onclick=\""+functionName+"(");
		            			str.append(i).append(",").append(MAX_ROW).append(");return false;\">");
				            	str.append(i);
				            	str.append("</a></li>");
		            		}
		            	}
		            }else if(currentPage>allPage-2)
		            {
		            	for(int i=allPage-4;i<=allPage;i++)
		            	{
		            		if(i==currentPage)
		            		{
		            			str.append("<li class='pgCurrent'>");
				            	str.append(i);
				            	str.append("</li>");
		            		}
		            		else
		            		{
		            			str.append("<li><a href=\"javascript:void(0);\" onclick=\""+functionName+"(");
		            			str.append(i).append(",").append(MAX_ROW).append(");return false;\">");
				            	str.append(i);
				            	str.append("</a></li>");
		            		}
		            		
		            	}
		            }
		            else {
		            	for(int i=currentPage-2;i<=currentPage+2;i++)
		            	{
		            		if(i==currentPage)
		            		{
		            			str.append("<li class='pgCurrent'>");
				            	str.append(i);
				            	str.append("</li>");
		            		}
		            		else
		            		{
		            			str.append("<li><a href=\"javascript:void(0);\" onclick=\""+functionName+"(");
		            			str.append(i).append(",").append(MAX_ROW).append(");return false;\">");
				            	str.append(i);
				            	str.append("</a></li>");
		            		}
		            	}
		            }
		            if(currentPage < allPage)
		            {
		            	str.append("<li><a href=\"javascript:void(0);\" onclick=\""+functionName+"(");
            			str.append(allPage).append(",").append(MAX_ROW).append(");return false;\">");
		            	str.append("尾页</a></li>");
		            }
		            str.append("</ul>");
		            this.jwebpage = str.toString();  
		          return str.toString();
		        }
		    }


		public List getList() {
			return list;
		}


		public void setList(List list) {
			this.list = list;
		}
}
